home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
CRS
/
crs07.d81
/
tankvol.prg
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2009-10-10
|
5KB
|
136 lines
10 GOTO90
20 ************************************
30 *** TANK VOLUME ***
40 ************************************
50 *** BY TIM TEMPLE ***
60 ************************************
70 *** PUBLIC DOMAIN ***
80 ************************************
90 P$="[147][159] TANK VOLUME [146] "
100 PRINTP$" THIS PROGRAM FINDS THE VOLUME OF LI- QUID IN A PARTIALLY ";
110 PRINT"FILLED TANK. JUST TELL IT THE TYPE OF TANK, TANK DIMEN- SIONS, ";
120 PRINT"THE TANK SOUNDING (FROM THE BOT- TOM), AND THIS PROGRAM WILL TELL ";
130 PRINT"YOU THE VOLUME IN IT.":PRINT"HIT ANY KEY TO GO ON.
140 [161]C$:[139]C$[178]""[167]140
150 [153]P$;"WHAT DOES THE TANK LOOK LIKE?"
160 [153]"F1WAIT-A BOX",,,,"F3WAIT-AN UPRIGHT CYLINDER"
170 [153]"F5WAIT-A CYLINDER ON ITS SIDE",,"F7WAIT-A SPHERE"
180 [153]" HIT THE APPROPRIATE FUNCTION KEY"
190 [161]A$:[139]A$[177]"LET"[176]A$[179]"INPUT"[167]190
200 A%[178][198](A$)[171]132:[145]A%[141]210,230,250,270:[156]:[137]150
210 [143] BOX MENU * * *
220 [153]"LOAD"P$:[129]I[178]1[164]4:[145] I [141]320,290,340,550:[153]"LOAD"P$:[130]:[142]
230 [143] UPRIGHT CYLINDER MENU * *
240 [153]"LOAD"P$:[129]I[178]1[164]4:[145] I [141]340,360,390,550:[153]"LOAD"P$:[130]:[142]
250 [143] SIDE CYLINDER MENU * * *
260 [153]"LOAD"P$:[129]I[178]1[164]4:[145] I [141]390,320,360,550:[153]"LOAD"P$:[130]:[142]
270 [143] SPHERE MENU * * *
280 [153]"LOAD"P$:[141]360:[141]550:[142]
290 [143] INPUTS * * *
300 [153]"WHAT IS THE TANK WIDTH (FEET & INCHES)?
310 INPUT"FEET";WF:INPUT"INCHES";WI:W=WF+WI/12:RETURN
320 PRINT"WHAT IS THE TANK LENGTH (FEET & INCHES)?
330 [133]"FEET";LF:[133]"INCHES";LI:L[178]LF[170]LI[173]12:[142]
340 [153]"WHAT IS THE TANK HEIGHT (FEET & INCHES)?
350 INPUT"FEET";HF:INPUT"INCHES";HI:H1=HF+HI/12:RETURN
360 PRINT"WHAT IS THE TANK DIAMETER (FEET & INCHES)?
370 [133]"FEET";DF:[133]"INCHES";DI:D[178]DF[170]DI[173]12:R[178]D[173]2:[142]
380 [143] CYLINDER END INPUTS * * *
390 [153]"WHAT DO THE ENDS OF THE TANK LOOK LIKE?"
400 [153]"F1WAIT-FLAT":[153]"F3WAIT-HEMISPHERIC":[153]"F5WAIT-SPHEROIDAL
410 PRINT"F7[146]-INVERTED SPHEROIDAL":PRINT" HIT F2[146] FOR DEFINITIONS
420 [161]B$:[139]B$[179]"INPUT"[176]B$[177]"GOTO"[167]420
430 B%[178][198](B$)[171]132:[139]B%[178]5[167][137]460
440 [142]
450 [143] * DEFINITIONS *
460 [153]P$;" DEFINITIONS"
470 [153]"HEMISPHERIC - THE TANK LOOKS LIKE A MEDICINE CAPSULE.
480 PRINT"SPHEROIDAL - THE ENDS ARE ROUNDED; HALF-WAY BETWEEN FLAT AND ";
490 PRINT"HEMISPHERIC.
500 [153]"INVERTED SPHEROIDAL - THE ENDS ARE DISHED INWARD, LIKE THE ";
510 [153]"BOTTOM OF A COKECAN.":[153]" HIT ANY KEY TO RETURN."
520 [161]C$:[139]C$[178]""[167]520
530 [137]390
540 [143] MAIN LOOP * * *
550 A$(1)[178]"A BOX":A$(2)[178]"AN UPRIGHT CYLINDER":A$(3)[178]"A CYLINDER ON ITS SIDE"
560 A$(4)[178]"A SPHERE":B$(1)[178]"FLAT":B$(2)[178]"HEMISPHERIC":B$(3)[178]"SPHEROIDAL"
570 B$(4)[178]"INVERTED "[170]B$(3)
580 [153]P$;"TYPE OF TANK="A$(A%)
590 [139]A%[178]2[176]A%[178]3[167][153]"TYPE OF END="B$(B%)
600 [153]"INSIDE MEASUREMENTS:"
610 [139]L[167][153]"LENGTH= "LF" FEET,"LI" INCHES"
620 [139]W[167][153]"WIDTH= "WF" FEET,"WI" INCHES"
630 [139]H1[167][153]"HEIGHT= "HF" FEET,"HI"INCHES"
640 [139]D[167][153]"DIAMETER= "DF" FEET,"DI"INCHES
650 PRINT"TYPE IN THE DEPTH OF THE LIQUID FROM THEBOTTOM TO THE SURFACE, ";
660 PRINT"IN INCHES ONLY."
670 PRINT" HIT F1[146] TO START OVER"
680 REM SOUNDING INPUT * * *
690 INPUT"DEPTH IN INCHES";S:GOTO710
700 INPUT"[145]";S$:S$=C$+S$:S=VAL(S$)
710 H=S/12:VOL=0
720 ONA%GOSUB780,810,980,1100:REM CALCULATION SUBROUTES
730 IFVOL>0THENGOSUB1130
740 PRINT"DEPTH?";:S$=""
750 C$="":GETC$:IFC$="[133]"THENRETURN
760 IFC$=""THEN750
770 PRINTC$:GOTO700
780 REM BOX CALC * * *
790 IFH<0ORH>H1THENPRINT"BE REASONABLE!":RETURN
800 VOL=L*W*H:RETURN
810 REM UPRIGHT CYLINDER CALC * *
820 IFH=<0ORH>H1THENPRINT"BE REASONABLE!":RETURN
830 ONB%GOSUB840,930,870,900:RETURN
840 VOL=(null)*R*R*H:RETURN
850 VOL=(null)*4/3*H*H*(R*3/2-H):RETURN
860 REM
870 IF H<R/2 THENGOTO850
880 HS=H-R/2:VOL=(null)*R*R*R/3+(null)*R*R*HS:RETURN
890 REM
900 IF H<R/2 THENGOSUB850:K=VOL:GOSUB840:VOL=VOL-K:RETURN
910 VOL=(null)*R*R*H-(null)*R*R*R/3:RETURN
920 REM
930 H1=H1-D
940 IFH<=RTHENGOSUB1100:K=VOL
950 IFH<=R+H1ANDH>RTHENHS=H:H=R:GOSUB1100:K=VOL:H=HS-R:GOSUB840:VOL=K+VOL
960 IFH>R+H1THENHS=H:H=H-H1:GOSUB1100:K=VOL:H=H1:GOSUB840:VOL=K+VOL:H=HS
970 H1=H1+D:RETURN
980 REM SIDE CYLINDER CALC * * *
990 IFH<0ORH>DTHENPRINT"BE REASONABLE!":RETURN
1000 ONB%GOSUB1010,1070,1080,1090:RETURN
1010 X=(R-H)/R:IF X=-1 THENX=X+.000001
1020 IF X=1 THENX=X-.000001
1030 M=2*(-ATN(X/SQR(1-X*X))+(null)/2)
1040 A=R*R*(M-SIN(M))/2:VOL=A*L
1050 RETURN
1060 REM
1070 GOSUB1100:K=VOL:GOSUB1010:VOL=K+VOL:RETURN
1080 GOSUB1100:K=VOL/2:GOSUB1010:VOL=K+VOL:RETURN
1090 GOSUB1100:K=-VOL/2:GOSUB1010:VOL=K+VOL:RETURN
1100 REM SPHERE CALC * * *
1110 IFH<0ORH>DTHENPRINT"BE REASONABLE!":RETURN
1120 VOL=(null)*H*H*(R-H/3):RETURN
1130 REM CU. FT. TO GALLONS * * *
1140 VOL=VOL*7.481:D$="GALLONS"
1150 IFVOL<1THENVOL=VOL*4:D$="QUARTS"
1160 IFVOL<1THENVOL=VOL*2:D$="PINTS"
1170 IFVOL<1THENVOL=VOL*16:D$="OUNCES"
1180 VOL=INT(VOL*100+.5)/100
1190 PRINT"VOLUME ="VOL" "D$
1200 RETURN
1210 VARIABLES
1220 -----------------------------------
1230 A$,A% TYPE OF TANK SELECTION
1240 WF,WI,W WIDTH OF TANK
1250 LF,LI,L LENGTH OF TANK
1260 HF,HI,H1 HEIGHT OF TANK
1270 DF,DI,D DIAMETER OF TANK
1280 B$,B% TYPE OF ENDS
1290 S,H,S$ DEPTH OF LIQUID
1300 VOL VOLUME
1310 K TEMP VOLUME
1320 HS TEMP DEPTH
1330 X,A,C$ MISC
1340 P$ TITLE
1350 R RADIUS OF TANK